<?php
/**
 * jishupu-cms
 * @Author:技术铺
 * @Date:2021/11/21
 */

namespace App\Filters;

/**
 * 管理员角色模块过滤器
 *
 * Class UserRoleFilter
 * @package App\Filters
 */
class UserRoleFilter extends BaseFilter
{
    /**
     * 关键词搜索
     * @param $keywords_value
     */
    protected function keywordsValue($keywords_value)
    {
        if (filled($keywords_value)) {
            return $this->builder
                ->where('name', 'like', '%' . $keywords_value . '%')
                ->orWhere('username', 'like', '%' . $keywords_value . '%')
                ->orWhere('phone_number', 'like', '%' . $keywords_value . '%')
                ->orWhere('email', 'like', '%' . $keywords_value . '%');
        }
    }

    /**
     * 排序
     * @param $sort
     * @return mixed
     */
    protected function sort($sort)
    {
        if (filled($sort)) {
            preg_match('/(\-|\+)(.*)/', $sort, $sort_result);
            if (filled($sort_result[2]) && filled($sort_result[1])) {
                $this->builder->orderBy("user.".$sort_result[2], $sort_result[1] == '-' ? 'desc' : 'asc');
                if ($sort_result[2] != 'id') {
                    $this->builder->orderBy('user.id', 'desc');
                }
                return $this->builder;
            }
        }
        return $this->builder->orderBy('user.id', 'desc');
    }

}
